﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JXT.PrimaryKey.Batman.Domain.Specifications.Expressions
{
    public sealed class ExpressionSpecificationFactory : ISpecificationFactory
    {
        public ISpecification<TEntity> CreateSpecification<TEntity>() where TEntity : Models.IEntity
        {
            return new ExpressionSpecification<TEntity>();
        }

        public IOrderedSpecification<TEntity> CreateOrderedSpecification<TEntity>() where TEntity : Models.IEntity
        {
            return new OrderedExpressionSpecification<TEntity>();
        }

        public IPagedSpecification<TEntity> CreatePagedSpecification<TEntity>() where TEntity : Models.IEntity
        {
            return new PagedExpressionSpecification<TEntity>();
        }
    }
}
